package cn.tedu.charging.account.service;

import cn.tedu.charging.account.pojo.entity.ChargingStation;
import cn.tedu.charging.account.pojo.param.ChargingStationAddNewParam;
import cn.tedu.charging.account.pojo.vo.ChargingStationStandardVO;
import cn.tedu.charging.account.pojo.vo.OrderStandardVO;
import org.springframework.data.geo.Circle;
import org.springframework.transaction.annotation.Transactional;

import java.util.Collection;
import java.util.List;

/**
 * 处理充电站数据的业务接口
 *
 * @author wyy
 * @version 1.0
 */
@Transactional
public interface IChargingStationService {
    /**
     * 添加充电站
     *
     * @param chargingStation 充电站数据
     */
    void addNew(ChargingStation chargingStation);

    /**
     * 删除充电站
     *
     * @param id 充电站id
     */
    void delete(Long id);

    /**
     * 根据充电站id修改数据
     *
     * @param chargingStation 充电站数据
     */
    void update(ChargingStation chargingStation);

    /**
     * 把所有充电站的信息全部存到redis中
     *
     *
     * @return 充电站数据
     */
    Long countListByStationId(String bean);

    /**
     * 查询数据库中的充电站数据
     *
     * @param latitude 经度
     * @param longitude 纬度
     * @param radius 半径
     * @return 返回查询到的数据库数据
     */
    List<ChargingStationStandardVO> findByLocationWithin(double latitude, double longitude, double radius, String name);

    /**
     * 根据充电枪id查询是否被使用
     *
     * @param id 充电枪id
     * @return 是否被使用，返回相关数据
     */
    OrderStandardVO selectByStationDeviceId(Long id);

}
